package 常用类;

/**
 * 数据结构(Data Structures)的研究内容:探讨如何在计算机中组织和储存数据并进行高效率的运用
 * 涉及内容包含：数据的逻辑关系、数据的储存结构、排序算法(Algorithm)、查找/搜索
 * 目的：加快程序的执行速度、减少内存占用的空间
 * 内涵：程序(Programs)=数据结构(高效)+算法(正确)
 * 【1】数据间的逻辑结构：1.集合：数据元素之间只有“同属于一个集合”的关系
 *                2.线性关系：数据之间存在一对一的关系——>顺序表、链表、栈、队列
 *                3.树形结构：一对多的关系          ——>二叉树
 *                4.网(图)状结构：多对多的关系      ——>图
 *                参考书籍：数据结构与算法分析Java语言描述版(卡罗拉)、大话数据结构(程杰)
 * 【2】数据的储存结构(物理结构)：1.静态数据结构(序列表)：数组(Array)、ArrayList
 *                              特点：使用连续分配的内存空间、须提前声明占用的固定连续的内存空间
 *                              优点：设计简单，读改任意元素的时间都是固定的(数组下标)
 *                              缺点：易造成内存浪费、增删插数据麻烦
 *                           2.动态数据结构(链表)：LinkedList
 *                            特点：使用不连续分配的内存空间、按须申请内存,无须提前声明占用的空间
 *                            优点：节省空间，增删插数据方便(链表节点Node)
 *                            缺点：设计麻烦、按顺序找到数据为止
 * 【3】抽象结构：1.栈(Stack)：先进后出
 *              2.队列(Queue)：先进先出
 *              3.树(Tree)：二叉树
 *              4.图：无向图、有向图
 *              5.其他：散列表(Hash)、堆(Heap)
 * 通配符:类A是类B的父类,G<A>G<B>无关系,共同父类是G<?>
 *       不能写入null以外的数据,可以获取存放的数据(Object类)
 * 通配符的使用 1. ? extends A ,可以作为G<A>G<B>的父类,B是A的子类 读：(-∞，A] 写：<=A
 *            2. ? super A   ,可以作为G<A>G<B>的父类,B是A的父类 读：[A,+∞) 写：>=A
 */
public class Data_Structure {
}
